const mongoose = require('mongoose');
const shortid = require('shortid');
const moment = require('moment');
const Follow = require('../model/Follow');
const Like = require('../model/Likes');

const BullerSchema = new mongoose.Schema({
    _id:{
        type:String,
        default:shortid.generate,
        unique:true//主键
    },
    uname:{
        type:String,
        require:true
    },
    nickName:{
        type:String,
        default:'新人小淘'
    },
    pwd:{
        type:String,
        require:true
    },
    email:{
        type:String,
        require:true
    },
    //购物车
    shopCar:{
        type:Array,
        default:[]
    },
    avatar:{
        type:String,
        default:'/images/user/default_seller.png'
    },
    create_time:{
        type:Date,
        default:Date.now
    },
    //收货地址
    area:{
        type:Array,
        default:[]
    },

    //关注的店铺id
    be_followed:{
        type:Array,
        default:[]
    },
    //关注的店铺对象们
    be_followedObj:{
        type:Array,
        default:[]
    },
    hisSearch:{
        type:Array,
        default:[]
    },
    //收藏的商品id  保证显示的都是最新的店铺信息
    likeGoods:{
        type:Array,
        default:[]
    },
    likeGoodsObj:{
        type:Array,
        default:[]
    },
    //历史订单
    hasBull:{
        type:Array,
        default:[]
    },

    //经验值，后期写升级功能
    score:{
        type:Number,
        default:0

    },

    //是否被禁用
    isDis:{
        type:Boolean,
        default:false
    },





})
BullerSchema.statics = {

    getBullerOne:(query,callback)=>{
      Buller.findOne(query,callback).then((buller)=>{
            callback(null,buller);
        }).catch((err)=>{
          callback(err);
      })
    },
    getBullerById:(id,callback)=>{
        Buller.findOne({'_id':id}).then(function (buller) {
            callback(null,buller);
        }).catch(function (err) {
            callback(err);
        })
    },
    getBullerByName:(uname,callback)=>{
        Buller.findOne({'uname':uname}).then(function (buller) {
            callback(null,buller);
        }).catch(function (err) {
            callback(err);
        })
    },
    getBullerByEmail:(email,callback)=>{
        Buller.findOne({'email':email}).then(function (buller) {
            callback(null,buller);
        }).catch(function (err) {
            callback(err);
        })
    },

    updateBuller:(id,data,callback)=>{
        Buller.update({'_id':id},data,{new:true}).then(function (buller) {
            callback(null,buller);
        }).catch(function (err) {
            callback(err);
        })
    },
    getAllBuller:(callback)=>{
    	Buller.find().then((bullers)=>{
    		callback(null,bullers);
    	}).catch(function(err){
    		callback(err);
    	})
    }
}
BullerSchema.methods.create_time_ago = function () {
    return moment(this.create_time).fromNow();
}


const Buller = mongoose.model('Buller',BullerSchema);
module.exports = Buller;
